home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-2 / Inter.Net 55-2.iso / Mandrake / mdkinst / usr / bin / perl-install / standalone / mousedrake < prev    next >
Encoding:
Text File  |  2000-01-12  |  1.5 KB  |  54 lines

  1. #!/usr/bin/perl
  2.  
  3. use lib qw(/usr/lib/libDrakX);
  4.  
  5. use common qw(:system);
  6. use interactive;
  7. use mouse;
  8. use c;
  9.  
  10. local $_ = join '', @ARGV;
  11.  
  12. /-h/ and die "usage: mousedrake [--auto] [--noauto] [--testing]\n";
  13.  
  14. $::auto = /-auto/;
  15. $::noauto = /-noauto/;
  16. $::testing = /-testing/;
  17. $::isStandalone = 1;
  18.  
  19. my $in = vnew interactive('su');
  20.  
  21. my $mouse = eval { mouse::detect() } unless $::noauto;
  22.  
  23. if (!(my $name = $mouse && $mouse->{FULLNAME}) || !$::auto) {
  24.     $name ||= "Generic Mouse (serial)";
  25.     $name = $in->ask_from_list_('', _("What is the type of your mouse?"), [ mouse::names() ], $name);
  26.     $mouse = mouse::name2mouse($name);
  27.  
  28.     if ($mouse->{device} eq "usbmouse") {
  29.     require pci_probing::main;
  30.     my ($c) = pci_probing::main::probe("serial_usb") or die _("no serial_usb found\n");
  31.     eval { modules::load($c->[1], "serial_usb") };
  32.     }
  33. }
  34.  
  35. $mouse->{XEMU3} = 'yes' if $mouse->{nbuttons} < 3 && (!$::noauto || $in->ask_yesorno('', _("Emulate third button?"), 1));
  36.  
  37. $mouse->{device} = mouse::serial_ports_names2dev(
  38.     $in->ask_from_list(_("Mouse Port"),
  39.                _("Which serial port is your mouse connected to?"),
  40.                [ mouse::serial_ports_names() ])) if $mouse->{device} eq "ttyS";
  41.  
  42. mouse::write('', $mouse);
  43. modules::write_conf("/etc/conf.modules") if $mouse->{device} eq "usbmouse" && !$::testing;
  44.  
  45. my $f = "/etc/X11/XF86Config";
  46. substInFile {
  47.     if (/^Section "Pointer"/ .. /^EndSection/) {
  48.     s|^(\s*Protocol\s+).*|$1"$mouse->{XMOUSETYPE}"|;
  49.     s|^(\s*Device\s+).*|$1"/dev/mouse"|;
  50.     }
  51. } $f if -e $f && !$::testing;
  52.  
  53. $in->exit(0);
  54.